/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;

/**
 *
 * @author bpmlab
 */
@ManagedBean
@SessionScoped
public class ControlePessoa implements Serializable {

    private Boolean opcaoSelecionada;
    private Boolean pessoaFisica;
    private Integer id;
    private String nome;
    private String cpf;
    private String cnpj;
    private String saida;

    public ControlePessoa() {
        opcaoSelecionada = false;

    }

    public Boolean getOpcaoSelecionada() {
        return opcaoSelecionada;
    }

    public void setOpcaoSelecionada(Boolean opcaoSelecionada) {
        this.opcaoSelecionada = opcaoSelecionada;
    }

    public Boolean getPessoaFisica() {
        return pessoaFisica;
    }

    public void setPessoaFisica(Boolean pessoaFisica) {
        this.pessoaFisica = pessoaFisica;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getCnpj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public String getSaida() {
        return saida;
    }

    public void setSaida(String saida) {
        this.saida = saida;
    }

    //Captura o evento de mudança de valor no componente. 
   //Pega o valor na mudança de evento.
    public void tipoChange(ValueChangeEvent e) {
        //pessoaFisica recebe o valor de um Boolean que pega o novo evento
        pessoaFisica = (Boolean) e.getNewValue();
        //Chama o método selecionar    
        selecionar();
    }
    public String selecionar() {
        opcaoSelecionada = true;
    //É utilizado um operador ternário: se a condição for verdadeira valor 1 
        //se não valor 2.
        //É criada uma string que irá armazenar a seleção do usuário. Se a escolha 
        //(pessoaFisica) for verdadeira, então retorne a 1° string "Pessoa Física"
        //se for falsa retorne a segunda string "Pessou Jurídica" 
        String selecao = pessoaFisica == true ? "Pessoa Física" : "Pessou Jurídica";
        FacesMessage msg = new FacesMessage("Tipo selecionado:" + selecao);
        FacesContext.getCurrentInstance().addMessage(null, msg);
        return "formPessoa.xhtml";
    }

//Método para exibir os dados após submeter o formulário. Exibe o que o usuário selecionou

    public String exibirDados() {
        saida = "";
        saida += "Valores recebidos:";
        saida += "<br/>" + (pessoaFisica ? "Nome: " + nome : "Razão social:" + nome);
        saida += "<br/>" + (pessoaFisica ? "CPF: " + cpf : "CNPJ:" + cnpj);
        FacesMessage msg = new FacesMessage("Dados recebidos com sucesso!");
        FacesContext.getCurrentInstance().addMessage(null, msg);

        return "dadosPessoa.xhtml";
    }
public String voltar(){
    opcaoSelecionada=false;
    id=null;
    nome="";
    cpf="";
    cnpj="";
    return "formPessoa.xhtml";
}
    

}
